Data coherency across multiple controllers in a cluster is vital for reliable operation. If one controller loses a database or a file, or ceases operation, the database or file could be rebuilt, or the controller could be rebooted, but the system state and various pieces of data could change meanwhile. In network controllers, mappings of virtual networks should be persisted, but can experience loss of data coherency under the above conditions. In high-availability controller clusters, a switchover from master to follower could incur delays if data has lost coherency and has to be downloaded again or reconstructed. There is also a problem of determining which controller should be a source for data replication, when the master can change under various conditions. A blanket policy of frequent data copying, if not well-coordinated, could result in chaotic data. Also, frequent data copying consumes system and processor bandwidth. File deletion, under data replication, can be problematic. Therefore, there is a need in the art for a solution which overcomes the drawbacks described above.